LangChain 是一個專門為大語言模型(LLM, Large Language Model) 打造的開發框架。
在還沒有 LangChain 的年代,開發者使用 LLM 時,通常只能丟一個 prompt(提示詞)進去,然後得到一段回覆。雖然很強大,但缺乏結構性與可擴充性。LangChain 的出現,等於幫 LLM 提供了「骨架與神經系統」,讓它能被組合、協作、長期使用。
要理解 LangChain,可以把它想像成一個工具包。它提供了一些核心元件,分別解決不同的問題:
鏈接(Chains)
鏈接是 LangChain 的核心概念之一,代表了一系列的操作或步驟,這些步驟可以串聯起來以完成特定的任務。鏈接的設計使得開發者能夠靈活地組合不同的功能,從而創建複雜的工作流程。
基本鏈接:最簡單的鏈接可能只包含一個步驟,例如將用戶的輸入直接傳遞給語言模型進行處理。
複合鏈接:開發者可以創建更複雜的鏈接,這些鏈接可能包括多個步驟,例如先進行數據清理,然後生成文本,最後將結果格式化並返回給用戶。
條件鏈接:鏈接還可以根據特定條件進行分支,這意味著根據用戶的輸入或上下文,鏈接可以選擇不同的處理路徑。
記憶(Memory)
記憶功能是 LangChain 的一個重要特性,允許應用程序在多次交互中保持上下文。這對於需要持續對話的應用(如聊天機器人)特別重要。
這部分在上一篇文章:AI Agent 的記憶模組(Memory)有詳細介紹
數據源(Data Sources)
LangChain 支持多種數據源的整合,這使得開發者能夠從不同的來源獲取信息,並將其用於語言模型的輸入。
文本文件:開發者可以從本地或雲端的文本文件中讀取數據,這對於需要處理大量文本的應用非常有用。
數據庫:LangChain 可以連接到各種數據庫(如 SQL、NoSQL),使得開發者能夠直接查詢和操作數據。
API:開發者可以通過 API 獲取外部數據,這使得應用能夠實時獲取最新的信息,例如新聞、天氣或社交媒體數據。
工具(Tools)
LangChain 提供了一系列工具,這些工具可以與語言模型一起使用,以執行特定的任務。
網頁抓取:開發者可以使用工具來自動抓取網頁內容,這對於需要從互聯網獲取信息的應用非常有用。
數據分析:LangChain 提供的工具可以幫助開發者進行數據分析,從而自動生成報告或可視化數據。
自定義工具:開發者還可以創建自定義工具,以滿足特定需求,這使得 LangChain 的應用範圍更加廣泛。